#!/bin/sh
# author ruoyi
# sh task.sh start 启动
# sh task.sh stop 停止
# sh task.sh restart 重启
# sh task.sh start 状态
AppName=guage-process-task-1.0-SNAPSHOT.jar
SERVE_PORT="-DPORT=9999"
# JVM参数
JVM_OPTS="-Dname=$AppName  -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
APP_HOME=`pwd`
LOG_DIR="logs"
LOG_PATH=$APP_HOME/logs/$AppName.log

if [ "$1" = "" ];
then
    echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
    exit 1
fi
if [ "$AppName" = "" ];
then
    echo -e "\033[0;31m 未输入应用名 \033[0m"
    exit 1
fi
function start()
{
    PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
	if [ x"$PID" != x"" ]; then
	    echo "$AppName is running..."
	    exit 1
	else
			if [ ! -d "$LOG_DIR" ]; then
			        mkdir $LOG_DIR
			fi
			echo "开始启动 $AppName 服务..."
			nohup java $SERVE_PORT -jar $AppName $JVM_OPTS  >> ./$LOG_DIR/server.log 2>&1 &
		    #nohup java $SERVE_PORT -jar $AppName $JVM_OPTS > /dev/null 2>&1 &
		    PID2=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
		    if [ x"$PID2" != x"" ]; then
		        echo "$AppName is 启动成功..."
			    echo "Start $AppName success..."
			    exit 1
	        fi
	fi
}

function getPID()
{
    PID2=""
    PID2=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
    return $PID2;
}

function stop()
{
    echo "Stop $AppName"
	PID=""
	query(){
		PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
	}
	query
	if [ x"$PID" != x"" ]; then
		kill -TERM $PID
		echo "$AppName (pid:$PID) exiting..."
		while [ x"$PID" != x"" ]
		do
			sleep 1
			query
		done
		echo "$AppName exited."
	else
		echo "$AppName already stopped."
	fi
}
function restart()
{
    stop
    sleep 2
    start
}
function status()
{
    PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
    if [ $PID != 0 ];then
        echo "$AppName is running..."
    else
        echo "$AppName is not running..."
    fi
}
case $1 in
    start)
    start;;
    stop)
    stop;;
    restart)
    restart;;
    status)
    status;;
    *)
esac
